package com.xwaf.platform.system.api.service.gateway;

/**
 * 
 * <p>
 * HTTP API请求签名验证和客户端用户Token有效判断接口
 * <p>
 * 
 * @author 李聪 <br>
 * @email xwaf_love@yeah.net <br>
 * @since JDK 1.8<br>
 * @date 2019年12月30日 上午8:56:18 <br>
 * @see 无<br>
 *      Copyright (c) 2019, xwaf_love@yeah.net All Rights Reserved.<br>
 */
public interface CurrentLimitService {

	/**
	 * 
	 * <p>
	 * 进行限流管制
	 * <p>
	 * 
	 * @author 李聪 <br>
	 * @email xwaf_love@yeah.net <br>
	 * @since JDK 1.8<br>
	 * @date 2019年12月30日 上午8:56:27 <br>
	 * @see 无<br>
	 * @param uri
	 * @param uid
	 * @param deviceType
	 * @param limit
	 * @param limit1m
	 * @param clearTokenNum
	 * @demo <br>
	 */
	void currentLimit(String uri, String uid, String deviceType, int limit, int limit1m, int clearTokenNum);

	/**
	 * 
	 * <p>
	 * 限流住了
	 * <p>
	 * 
	 * @author 李聪 <br>
	 * @email xwaf_love@yeah.net <br>
	 * @since JDK 1.8<br>
	 * @date 2019年12月30日 上午8:56:33 <br>
	 * @see 无<br>
	 *      Copyright (c) 2019, xwaf_love@yeah.net All Rights Reserved.<br>
	 */
	public static class CurrentLimitException extends RuntimeException {

		private static final long serialVersionUID = 1L;

		public CurrentLimitException() {
			super();
		}

		public CurrentLimitException(String message) {
			super(message);
		}

		public CurrentLimitException(Throwable cause) {
			super(cause);
		}
	}
}
